package data;


import org.hibernate.Session;

import utils.SessionFactoryUtil;

import data.Empleado;

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.List;

import java.util.Date;



public class EmpleadoDAO {

// se hace Un SELECT con el lenguaje HQL de hibernate

public List<?> listarEmpleados(){

Session sesion = SessionFactoryUtil.getInstance().getCurrentSession();

sesion.beginTransaction();

//Empleados es la clase no la tabla

List<?> result = sesion.createQuery("FROM Empleado ORDER BY empNo DESC")

//equivalente a LIMIT en sql

.setMaxResults(20)

.list();

// se retorna la conexion JDBC al pool y se libera

sesion.getTransaction().commit();

//retorna la lista de objetos d la clase Empleados con los datos

return result;

}



//Insercion de datos

public boolean ingresarEmpleado(String nombre,String apellido,

String nacimiento, String genero){

DateFormat formatoNacimiento = new SimpleDateFormat("yyyy-MM-dd");



Session sesion = SessionFactoryUtil.getInstance().getCurrentSession();

sesion.beginTransaction();

Empleado emp;

try {

//Se instancia con los datos del formulario y se ingresan

emp = new Empleado(formatoNacimiento.parse(nacimiento),nombre,apellido,genero,new Date());

sesion.save(emp);

} catch (ParseException e) {

e.printStackTrace();

return false;

}

sesion.getTransaction().commit();

return true;

}

}